전공 · 모든 회사 / 데이터엔지니어

Q. SQL 심화과정 조인과 관련된 질문

유성윤

★ 예제 문제 ★ 사원 테이블과 부서 테이블을 크로스 조인하여 '배재용' 사원에 대한 정보(이름, 사원 테이블의 부서번호, 부서 테이블의 부서번호, 부서명)를 보이세요. 1. ANSI SQL 조인 SELECT 부서.부서번호 ,부서명 ,이름 ,사원.부서번호 FROM 부서 CROSS JOIN 사원 WHERE 이름 = '배재용'; 2. Non–ANSI SQL 조인 SELECT 부서.부서번호 ,부서명 ,이름 ,사원.부서번호 FROM 부서 ,사원 WHERE 이름 = '배재용'; ANSI SQL 조인과 Non–ANSU SQL 조인을 써도 컬럼이 아무것도 안 나오는데 뭐가 문제인지 모르겠어요.


2026.08.06

답변 4

  • P
    PRO액티브현대트랜시스
    코전무 ∙ 채택률 100%

    채택된 답변

    현재 작성하신 SQL 자체는 문법 오류는 없어 보입니다. 결과가 아무것도 나오지 않는다면 조인 방식의 문제가 아니라 WHERE 조건인 이름 = '배재용'에서 조건을 만족하는 데이터가 없을 가능성이 가장 높습니다. 먼저 확인해야 할 것은 사원 테이블에 정말 배재용이라는 이름이 존재하는지입니다. 아래 쿼리를 먼저 실행해보세요. SELECT 이름 FROM 사원; 여기서 실제 저장된 이름 목록을 확인해보면 됩니다. 만약 배재용이 보이지 않는다면 당연히 결과가 나오지 않습니다. 또 자주 발생하는 문제가 이름 데이터 뒤에 공백이 들어간 경우입니다. 예를 들어 실제 값이 '배재용 '처럼 저장되어 있으면 화면상으로는 똑같아 보여도 SQL에서는 다른 값으로 인식합니다. 이 경우 아래처럼 확인해볼 수 있습니다. SELECT 이름 FROM 사원 WHERE TRIM(이름) = '배재용'; 이 결과가 나온다면 데이터에 공백이 포함된 것입니다. 그리고 예제 문제 자체를 보면 조금 이상한 부분도 있습니다. 문제에서는 크로스 조인을 하라고 했지만, 원하는 결과가 "배재용 사원의 부서번호와 부서명"이라면 일반적으로는 크로스 조인이 아니라 내부 조인을 사용하는 것이 맞습니다. 크로스 조인은 두 테이블의 모든 행을 조합하는 방식이라 부서와 사원의 관계를 연결하지 않습니다.

    2026.08.07


  • 합격 메이트삼성전자
    코부사장 ∙ 채택률 79%

    채택된 답변

    멘티님. 안녕하세요. ​작성하신 쿼리 문법 자체는 정상이라 데이터가 출력되지 않는다면 테이블 내부 데이터 값의 불일치일 확률이 가장 높습니다. WHERE 절에 지정한 이름 조건에 공백이 포함되어 있거나 실제 데이터베이스에 배재용이라는 데이터가 입력되어 있지 않은지 확인해야 합니다. ​SELECT * FROM 사원 WHERE 이름 LIKE %배재용%; 같은 쿼리로 데이터가 존재하는지 먼저 조회해보는 편이 좋습니다. 데이터가 존재함에도 결과가 나오지 않는다면 컬럼명이나 오탈자 문제일 수 있으니 SELECT 문을 최소화해서 실행해보면 원인을 찾기 쉽습니다. 조건절의 문자열 데이터 형태를 다시 한번 점검하고 실행해보시기 바랍니다. ​응원하겠습니다.

    2026.08.07


  • 삼성전자-삼성전자
    코이사 ∙ 채택률 60%

    채택된 답변

    실제 DB 테이블명과 컬럼명이 정확히 일치하는지 확인해보시고, 문제 없을 경우 WHERE 조건을 만족하는 행이 없다면 결과가 안나오는 것이 맞긴합니다.

    2026.08.07


  • 취뽀도우미입니다대구교통공사
    코부장 ∙ 채택률 90%

    채택된 답변

    작성해주신 두 가지 쿼리문 자체의 문법은 오류가 없기 때문에 SQL 구문 문제라기보다는 데이터의 상태를 확인해 보시는 것이 좋습니다. 먼저 사원 테이블에 '배재용'이라는 이름을 가진 데이터가 정확히 존재하는지 확인해 보시는 것을 권장합니다. 동명이인이 없거나 띄어쓰기나 대소문자 등의 오입력이 있을 경우 조건에 맞는 행이 조회되지 않아 결과가 나오지 않을 수 있습니다. 또한 크로스 조인은 두 테이블의 모든 행을 곱한 조합을 생성하기 때문에 데이터 양이 많아 결과가 늦게 나오거나 엉뚱한 조건으로 인해 빈 화면이 반환될 수 있습니다. 만약 이름 데이터가 정확함에도 결과가 없다면 사원 테이블의 이름 컬럼 값이나 데이터 존재 여부를 다시 한번 조회하여 확인해 보시는 방법을 추천드립니다.

    2026.08.07


함께 읽은 질문

궁금증이 남았나요?
빠르게 질문하세요.